package edu.whut.order;
/*
多态：
同一个行为具有多个不同表现形式或形态的能力
转型：
    向上转型：Fu f = new Zi();从子到父（父类引用指向子类对象）
    向下转型：Zi z = (Zi)f;从父到子（将父类引用所指向的对象，转交给子类类型）
 */
import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入：1.国内订单    2.海外订单");
        OrderService orderService = null;
        int choice = sc.nextInt();
        switch (choice){
            case 1:
                orderService = new OrderServiceImpl();
                break;
            case 2:
                orderService = new OverseasServiceImpl();
                break;
        }
        /*想用父类调用子类方法，但是不行
        orderService.check();
        */

       // instanceof ：判断左边的引用，是否是右边的数据类型
        //这样向下转型就可以
        if(orderService instanceof OverseasServiceImpl){
            OverseasServiceImpl osi = (OverseasServiceImpl) orderService;
            osi.check();
        }
        orderService.add();
        orderService.deleteById();
        orderService.findById();
    }
}
